const axios = require('axios');

// 配置基础URL
const BASE_URL = 'http://localhost:3000';

// 测试数据
const testData = {
    username: 'admin',
    operation_type: '测试',
    operation_module: '测试模块',
    operation_desc: '这是一个测试日志记录',
    ip_address: '127.0.0.1',
    user_agent: 'Test User Agent',
    status: '成功',
    error_message: null
};

// 测试函数
async function testUserCtrlLog() {
    try {
        // 1. 测试添加日志
        console.log('1. 测试添加用户控制日志');
        const addResponse = await axios.put(`${BASE_URL}/user_ctrl_log/add`, testData);
        console.log('添加日志响应:', addResponse.data);
        console.log('');

        // 2. 测试获取日志列表
        console.log('2. 测试获取用户控制日志列表');
        const listResponse = await axios.get(`${BASE_URL}/user_ctrl_log`);
        console.log('获取日志列表响应:', listResponse.data);
        console.log('');

        // 3. 测试按用户名查询
        console.log('3. 测试按用户名查询日志');
        const searchResponse = await axios.get(`${BASE_URL}/user_ctrl_log?username=admin`);
        console.log('按用户名查询响应:', searchResponse.data);
        console.log('');

        // 4. 测试操作类型统计
        console.log('4. 测试操作类型统计');
        const statsResponse = await axios.get(`${BASE_URL}/user_ctrl_log/stats/operation-types`);
        console.log('操作类型统计响应:', statsResponse.data);
        console.log('');

        // 5. 测试操作状态统计
        console.log('5. 测试操作状态统计');
        const statusResponse = await axios.get(`${BASE_URL}/user_ctrl_log/stats/status`);
        console.log('操作状态统计响应:', statusResponse.data);
        console.log('');

        // 6. 测试用户操作排行
        console.log('6. 测试用户操作排行');
        const rankingResponse = await axios.get(`${BASE_URL}/user_ctrl_log/stats/user-ranking?limit=5`);
        console.log('用户操作排行响应:', rankingResponse.data);
        console.log('');

        // 7. 测试导出日志
        console.log('7. 测试导出日志');
        const exportResponse = await axios.get(`${BASE_URL}/user_ctrl_log/export`);
        console.log('导出日志响应:', exportResponse.data);
        console.log('');

        console.log('所有测试完成！');

    } catch (error) {
        console.error('测试失败:', error.response?.data || error.message);
    }
}

// 运行测试
testUserCtrlLog(); 